// 对象遵循模式匹配原则
// 等号左边的变量放到大括号内部，匹配右侧对象中的元素。
// 对象的属性没有次序，变量必须与属性同名，才能取到正确的值.
// 1.对象解构 变量和属性同名 
// let {name,age}={name:'hello',age:'world'};
// console.log(name,age);
// 2.变量和属性不同名 变量重命名
// let {foo:baz}={foo:"hello",bar:'world'};
// console.log(baz);
// 3.嵌套解构
// let obj={p:['hello',{y:'world'}]};
// // 层层解构 遵循模式匹配原则
// let {p:[a,{y}]}=obj;
// console.log(a,y);
// 4.默认值解构
// let {x:y=3}={x:4};
// console.log(y);
const [a, b, c, ...d] = [1, 2, 3, 11, 999];// 1,2,3,[11,999]
const { e, f, f1, g, ...h } = { f: 4, g: 5, i: 6, j: 7 };
console.log(a, b, c, d, e, f1, g, h); //e f1-undefined  5 {i:6,j:7}